package com.ubxtech.db.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Victor.Xiao
 * @since 2022-01-07 13:44
 **/

@Data
@ConfigurationProperties(prefix = DbProperties.PREFIX)
public class DbProperties {
    public static final String PREFIX = "ubxtech.db";

    /**
     * 是否启用 防止全表更新与删除插件
     */
    private Boolean isBlockAttack = false;
    /**
     * 是否启用  sql性能规范插件
     */
    private Boolean isIllegalSql = false;
    /**
     * 主键生成方式,目前只有HuTool的雪花算法,可以扩展其它比如百度的uidGenerator,美团的leaf
     */
    private String idType;
    /**
     * 雪花算法 workId,取值范围0-31,默认根据mac地址生成
     */
    private Long workId;
    /**
     * 雪花算法 centerId,取值范围0-31,默认根据mac地址生成
     */
    private Long centerId;
    /**
     * 租户id字段名
     */
    private String tenantIdColumn = "enterprise_id";
    /**
     * 租户字段查询方式,eq:等于,in:多个,like:匹配,默认是eq
     */
    private String tenantSelectType = "eq";
    /**
     * 租户模式要忽略的表
     */
    private List<String> ignoreTables = new ArrayList<>();

    /**
     * 租户模式,默认不是租户模式,none,column,schema待添加
     */
    private String tenantType="none";

    /**
     * 分页大小限制
     */
    private long maxLimit = -1;

    /**
     * 是否需要乐观锁插件,0:不开启,1:开启,默认0
    */
    private Integer optimisticLocker = 0;

}
